This application claims priority to S.N. 98402633.6, filed in Europe on Oct. 22, 1998.
This invention relates to transferring large amounts of data between various nodes of a digital system, and more particularly to providing a communication channel that can have a plurality of synchronized data links provide a higher bandwidth than can be provided by a single data link.
Within a digital system, streams of data are often transferred from one node in the system to another. This is often done in a word parallel manner using a multi-bit bus, such as a 64 bit data bus or a 32 bit address bus. When a digital system is implemented on different printed circuit (PC) cards, a backplane which has one or more buses is used to interconnect the PC cards. In each case, each word transfer is done in manner so that all of the bits of the word on the parallel signal lines of the data bus remain synchronized with a designated timing signal.
A digital system may have two or more nodes which are separated by a distance that makes interconnection via a backplane impractical. In this case, data streams are transferred over a communication channel that may be a conductive cable, an optical link, an infared link, or a radio link, for example. Generally, the data stream is transferred in a serial manner over the communication channel so that only a single link is required. Cables may provide multiple signal lines so that the data stream can be transferred in a parallel manner, but the transfer rate is controlled so that all of the bits of the word on the parallel signal lines of the cable remain synchronized with a designated timing signal.
Any physical media for transferring data inherently causes a delay in the transfer of the data. When parallel data links are employed, each data link may have a slightly different delay characteristic due to physical differences. Thus, a skew is introduced between data transferred on the different links. Induced skew limits the transfer rate at which data can be transferred in a parallel manner on a communication channel.
An illustrative embodiment of the present invention seeks to provide a method for transferring a single stream of data on a plurality of data links that avoids or minimizes above-mentioned problems.
Aspects of the invention are specified in the claims. In carrying out principles of the present invention, a method provides for transferring a single stream of ordered data over a plurality of data links each having a transmitter and a receiver, wherein the single stream of data comprises a plurality of words each having a plurality of bits. The method divides the single stream of data into a plurality of sub-streams of data and inserts a frame pulse periodically in each sub-stream of data. Each sub-stream of data is then transmitted over a corresponding data link of the plurality of data links in a parallel manner to form a plurality of received data sub-streams, wherein a first data link has a first delay time that may be different from a second delay time of a second data link, such that a data skew occurs between a first received data sub-stream and a second received data sub-stream. After reception, a byte clock is recovered from each received data sub-stream and the byte clock and frame pulse of each slave received data sub-stream is synchronized to the byte clock and frame pulse of the master received data sub-stream such that the data skew is eliminated. Then, the plurality of received data sub-streams are combined to form a single received stream of ordered data.
According to another feature of the invention the byte clock of each data slave link if forced to align approximately with the byte clock of the master data link, and a bit tap point on each received data sub-stream is shifted so that byte boundaries of each received data sub-stream align with the byte clock associated with each received data sub-stream.
According to another feature of the invention, frame synchronization is tested for by determining if the frame pulse of each of the slave received data sub-streams is synchronized with the frame pulse of the master received data sub-stream. If frame synchronization is not present, then a byte tap point in each of the slave received data sub-streams is shifted up to a first number of times until each slave received data sub-stream is frame synchronized with the master received data sub-stream.
According to another feature of the invention, a byte tap point in the master received data sub-stream is shifted by one position if global frame synchronization is not achieved, and then the slave tap points are again shifted until each slave received data sub-stream is frame synchronized with the master received data sub-stream.